﻿/// <reference path="Scripts/views/Evaluaciones/evaluaciones/evaluacion-view.js" />
/// <reference path="../Scripts/amplify-vsdoc.js" />
/// <reference path="../Scripts/amplify.js" />

YUI({
    filter: 'raw',
    modules: {
        //#region Home
        "home-view": { fullpath: "Scripts/views/home-view.js" },
        //#endregion
        //#region Catalogos
        "catalogo-list-view": { fullpath: "Scripts/views/catalogos/catalogos/catalogo-list-view.js" },
        "catalogo-model": { fullpath: "Scripts/models/catalogos/catalogos/catalogo-model.js" },
        "editar-catalogo-view": { fullpath: "Scripts/views/catalogos/catalogos/editar-catalogo-view.js" },
        "catalogo-model-list": { fullpath: "Scripts/models/catalogos/catalogos/catalogo-model-list.js" },
        //#endregion
        //#region Periodos
        "periodo-model": { fullpath: "Scripts/models/calificaciones/periodos/periodo-model.js" },
        "periodo-model-list": { fullpath: "Scripts/models/calificaciones/periodos/periodo-model-list.js" },
        "editar-periodo-view": { fullpath: "Scripts/views/calificaciones/periodos/editar-periodo-view.js" },
        "periodo-list-view": { fullpath: "Scripts/views/calificaciones/periodos/periodo-list-view.js" },
        //#endregion
        //#region Parciales
        "parcial-model": { fullpath: "Scripts/models/calificaciones/parciales/parcial-model.js" },
        "parcial-model-list": { fullpath: "Scripts/models/calificaciones/parciales/parcial-model-list.js" },
        "editar-parcial-view": { fullpath: "Scripts/views/calificaciones/parciales/editar-parcial-view.js" },
        "parcial-list-view": { fullpath: "Scripts/views/calificaciones/parciales/parcial-list-view.js" },
        //#endregion
        //#region Cursos
        "curso-model": { fullpath: "Scripts/models/calificaciones/cursos/curso-model.js" },
        "curso-model-list": { fullpath: "Scripts/models/calificaciones/cursos/curso-model-list.js" },
        "editar-curso-view": { fullpath: "Scripts/views/calificaciones/cursos/editar-curso-view.js" },
        "curso-list-view": { fullpath: "Scripts/views/calificaciones/cursos/curso-list-view.js" },
        "agregar-curso-view": { fullpath: "Scripts/views/calificaciones/cursos/agregar-curso-view.js" },
        "agregarDocente-curso-view": { fullpath: "Scripts/views/calificaciones/cursos/agregarDocente-curso-view.js" },
        //#endregion
        //#region Personas
        "persona-model": { fullpath: "Scripts/models/seguridades/personas/persona-model.js" },
        "persona-model-list": { fullpath: "Scripts/models/seguridades/personas/persona-model-list.js" },
        "editar-persona-view": { fullpath: "Scripts/views/seguridades/personas/editar-persona-view.js" },
        "persona-list-view": { fullpath: "Scripts/views/seguridades/personas/persona-list-view.js" },
        //endregion
        //#region Usuario
        "cambiar-contrasenia-view": { fullpath: "Scripts/views/seguridades/personas/cambiar-contrasenia-view.js" },
        //#endregion
        //#region Docentes
        "docente-model": { fullpath: "Scripts/models/seguridades/docentes/docente-model.js" },
        "docente-model-list": { fullpath: "Scripts/models/seguridades/docentes/docente-model-list.js" },
        "docente-list-view": { fullpath: "Scripts/views/seguridades/docentes/docente-list-view.js" },
        //#endregion
        //#region Estudiantes
        "estudiante-consulta-model": { fullpath: "Scripts/models/seguridades/estudiantes/estudiante-consulta-model.js" },
        "estudiante-consulta-model-list": { fullpath: "Scripts/models/seguridades/estudiantes/estudiante-consulta-model-list.js" },
        "estudiante-model": { fullpath: "Scripts/models/seguridades/estudiantes/estudiante-model.js" },
        "estudiante-list-view": { fullpath: "Scripts/views/seguridades/estudiantes/estudiante-list-view.js" },
        "editar-estudiante-view": { fullpath: "Scripts/views/seguridades/estudiantes/editar-estudiante-view.js" },
        "editar-representante-estudiante-view": { fullpath: "Scripts/views/seguridades/estudiantes/editar-representante-estudiante-view.js" },
        "matriculacion-estudiante-view": { fullpath: "Scripts/views/seguridades/estudiantes/matriculacion-estudiante-view.js" },
        //#endregion
        //#region Preguntas
        "pregunta-model": { fullpath: "Scripts/models/cuestionarios/preguntas/pregunta-model.js" },
        "pregunta-model-list": { fullpath: "Scripts/models/cuestionarios/preguntas/pregunta-model-list.js" },
        "pregunta-opcion-view": { fullpath: "Scripts/views/cuestionarios/preguntasopciones/pregunta-opcion-view.js" },
        "editar-pregunta-view": { fullpath: "Scripts/views/cuestionarios/preguntas/editar-pregunta-view.js" },
        "pregunta-list-view": { fullpath: "Scripts/views/cuestionarios/preguntas/pregunta-list-view.js" },
        "pregunta-consulta-model": { fullpath: "Scripts/models/cuestionarios/preguntas/pregunta-consulta-model.js" },
        "pregunta-consulta-model-list": { fullpath: "Scripts/models/cuestionarios/preguntas/pregunta-consulta-model-list.js" },
        "agregar-pregunta-list-view": { fullpath: "Scripts/views/cuestionarios/cuestionarios/agregar-pregunta-list-view.js" },
        "editar-pregunta-list-view": { fullpath: "Scripts/views/cuestionarios/cuestionarios/editar-pregunta-list-view.js" },
        "preguntacuestionario-model": { fullpath: "Scripts/models/cuestionarios/preguntas/preguntacuestionario-model.js" },
        //#endregion
        //#region Opcion
        "opcion-model": { fullpath: "Scripts/models/cuestionarios/opciones/opcion-model.js" },
        //#endregion
        //#region Subir Archivo
        "subir-archivo-view": { fullpath: "Scripts/views/cuestionarios/subidadearchivos/subir-archivo-view.js" },
        //#endregion
        //#region Examenes
        "examen-consulta-model": { fullpath: "Scripts/models/examenes/examenes/examen-consulta-model.js" },
        "examen-consulta-model-list": { fullpath: "Scripts/models/examenes/examenes/examen-consulta-model-list.js" },
        "examen-model": { fullpath: "Scripts/models/examenes/examenes/examen-model.js" },
        "examen-model-list": { fullpath: "Scripts/models/examenes/examenes/examen-model-list.js" },
        "agregar-examen-view": { fullpath: "Scripts/views/examenes/examenes/agregar-examen-view.js" },
        "editar-examen-view": { fullpath: "Scripts/views/examenes/examenes/editar-examen-view.js" },
        "examenes-list-view": { fullpath: "Scripts/views/examenes/examenes/examenes-list-view.js" },
        "scheduler-examenes": { fullpath: "Scripts/views/examenes/examenes/scheduler-examenes.js" },
        "examen-list-view": { fullpath: "Scripts/views/examenes/examenes/examen-list-view.js" },
        "micalendario-view": { fullpath: "Scripts/views/examenes/examenes/micalendario-view.js" },
        "examenes-rendidos-estudiante-view": { fullpath: "Scripts/views/examenes/examenes/examenes-rendidos-estudiante-view.js" },
        //#endregion
        //#region Calendarizaciones
        "calendarizacion-model": { fullpath: "Scripts/models/examenes/calendarizaciones/calendarizacion-model.js" },
        "calendarizacion-model-list": { fullpath: "Scripts/models/examenes/calendarizaciones/calendarizacion-model-list.js" },
        "agregar-calendarizaciones-view": { fullpath: "Scripts/views/examenes/calendarizaciones/agregar-calendarizaciones-view.js" },
        //#endregion
        //#region Cuestionarios
        "cuestionariospregunta-list-view": { fullpath: "Scripts/views/cuestionarios/cuestionarios/cuestionariospregunta-list-view.js" },
        "editar-cuestionario-view": { fullpath: "Scripts/views/cuestionarios/cuestionarios/editar-cuestionario-view.js" },
        "cuestionario-model": { fullpath: "Scripts/models/cuestionarios/cuestionarios/cuestionario-model.js" },
        "cuestionario-model-list": { fullpath: "Scripts/models/cuestionarios/cuestionarios/cuestionario-model-list.js" },
        "cuestionarios-list-view": { fullpath: "Scripts/views/examenes/calendarizaciones/cuestionarios-list-view.js" },
        //#endregion
        //#region Cursos
        "curso-consulta-model-list": { fullpath: "Scripts/models/calificaciones/cursos/curso-consulta-model-list.js" },
        "curso-consulta-model": { fullpath: "Scripts/models/calificaciones/cursos/curso-consulta-model.js" },
        //#endregion
        //#region Recurso
        "recurso-model-list": { fullpath: "Scripts/models/cuestionarios/recursos/recurso-model-list.js" },
        "seleccionarrecurso-list-view": { fullpath: "Scripts/views/cuestionarios/recursos/seleccionarrecurso-list-view.js" },
        "recurso-model": { fullpath: "Scripts/models/cuestionarios/recursos/recurso-model.js" },
        "editar-recurso-view": { fullpath: "Scripts/views/cuestionarios/recursos/editar-recurso-view.js" },
        "recurso-list-view": { fullpath: "Scripts/views/cuestionarios/recursos/recurso-list-view.js" },
        //#endregion
        //#region Helpers
        "linkHelper": { fullpath: "Scripts/Helpers/linkHelper.js" },
        //#endregion
        //#region Evaluacion
        "evaluacion-view": { fullpath: "Scripts/views/Evaluaciones/evaluaciones/evaluacion-view.js" },
        "prevaluacion-view": { fullpath: "Scripts/views/Evaluaciones/evaluaciones/prevaluacion-view.js" },
        //#endregion
        //#region Reportes
        "reportes-view": { fullpath: "Scripts/views/reportes/reportes-view.js" },
        //#endregion
        //#region Calificacion Examen
        "resultado-evaluacion-view": { fullpath: "Scripts/views/Evaluaciones/evaluaciones/resultado-evaluacion-view.js" },
        //#endregion
        //#region Handlebars
        "handlebars-select-helper": { fullpath: "Scripts/Helpers/selectHelper.js" },
        "handlebars-customif-helper": { fullpath: "Scripts/Helpers/ifHelper.js" },
        //#endregion
        //#region Excellent
        "excellent-model-sync-rest": { fullpath: "Scripts/infrastructure/excellent-model-sync-rest.js" }
        //#endregion
    }
}).use("app-base", "app-transitions", "json", "event",
       //#region Home
       "home-view",
       //#endregion
       //#region Catalogos
       "catalogo-list-view", "catalogo-model-list", "catalogo-model", "editar-catalogo-view",
       //#endregion
       //#region Periodos
       "periodo-model", "periodo-model-list", "editar-periodo-view", "periodo-list-view",
       //#endregion
       //#region Parciales
       "parcial-model", "parcial-model-list", "editar-parcial-view", "parcial-list-view",
       //#endregion
       //#region Cursos
       "curso-model", "curso-model-list", "editar-curso-view", "curso-list-view", "agregar-curso-view",
       "agregarDocente-curso-view", "curso-consulta-model-list", "curso-consulta-model",
       //#endregion
       //#region Personas
       "persona-model", "persona-model-list", "editar-persona-view", "persona-list-view",
       //#endregion
       //#region Cambiar Contraseña
       "cambiar-contrasenia-view",
       //#endregion
       //#region Docente
       "docente-list-view",
       //#endregion
       //#region Estudiantes
       "estudiante-consulta-model", "estudiante-consulta-model-list", "estudiante-list-view", "editar-estudiante-view", "editar-representante-estudiante-view", "matriculacion-estudiante-view",
       "estudiante-model",
       //#endregion
       //#region Cuestionarios
       "cuestionario-model-list", "cuestionario-model", "cuestionariospregunta-list-view", "cuestionarios-list-view", "editar-cuestionario-view",
       //#endregion
       //#region Calendarizaciones
       "agregar-calendarizaciones-view", "calendarizacion-model", "calendarizacion-model-list",
       //#endregion
       //#region Preguntas
       "pregunta-model", "pregunta-model-list", "editar-pregunta-view", "pregunta-opcion-view", "pregunta-list-view", "agregar-pregunta-list-view",
        "pregunta-consulta-model", "preguntacuestionario-model", "pregunta-consulta-model-list", "editar-pregunta-list-view",
       //#endregion
       //#region Examenes
       "scheduler-examenes", "examenes-list-view", "examenes-list-view", "examen-consulta-model", "examen-consulta-model-list", "agregar-examen-view", "examen-model-list", "examen-model", "editar-examen-view", "micalendario-view", "examenes-rendidos-estudiante-view",
       //#endregion
       //#region Recursos
       "recurso-list-view", "seleccionarrecurso-list-view", "recurso-model-list", "recurso-model", "editar-recurso-view",
       //#endregion
       //#region Evaluacion
       "evaluacion-view",
       "prevaluacion-view",
       "resultado-evaluacion-view",
       //#endregion
       //#region Reportes
       "reportes-view",
       //#endregion
       //#region Excellent
       "handlebars-customif-helper", "excellent-model-sync-rest",
       //#endregion
        function (Y) {
            'use strict';

            var app = new Y.App({
                transitions: true,
                viewContainer: '#content',
                views: {
                    //#region Home
                    home: {
                        type: 'HomeView',
                        preserve: false
                    },
                    //#endregion
                    //#region Subir Archivo
                    subirarchivos: {
                        type: 'SubirRecursoView',
                        preserve: false
                    },
                    //#endregion
                    //#region Catalogos
                    catalogos: {
                        type: 'CatalogosView',
                        preserve: false
                    },
                    editarCatalogo: {
                        type: 'EditarCatalogo'
                    },
                    //#endregion
                    //#region Periodos
                    periodos: {
                        type: 'PeriodosView'
                    },
                    editarPeriodo: {
                        type: 'EditarPeriodo'
                    },
                    //#endregion
                    //#region Parciales
                    parciales: {
                        type: 'ParcialesView'
                    },
                    editarParcial: {
                        type: 'EditarParcial'
                    },
                    //#endregion
                    //#region Cursos
                    cursos: {
                        type: 'CursosView'
                    },
                    editarCurso: {
                        type: 'EditarCurso'
                    },
                    agregarCurso: {
                        type: 'AgregarCursoView'
                    },
                    agregarDocenteCurso: {
                        type: 'AgregarDocenteCursoView'
                    },
                    //#endregion
                    //#region Personas Estudiantes Docentes
                    personas: {
                        type: 'PersonasView'
                    },
                    editarPersona: {
                        type: 'EditarPersona'
                    },
                    cambiarContrasenia: {
                        type: 'CambiarContrasenia'
                    },
                    docentes: {
                        type: 'DocentesView'
                    },
                    estudiantes: {
                        type: 'EstudiantesView'
                    },
                    editarEstudiante: {
                        type: 'EditarEstudiante'
                    },
                    editarRepresentanteEstudiante: {
                        type: 'EditarRepresentanteEstudiante'
                    },
                    matricularEstudiante: {
                        type: 'MatriculacionEstudianteView'
                    },
                    //#endregion
                    //#region Cuestionarios Preguntas
                    cuestionariospreg: {
                        type: 'CuestionariosPreguntaView',
                        preserve: false
                    },
                    editarPreguntaCuest: {
                        type: 'EditarPreguntasCuest',
                        preserve: false
                    },
                    cuestpreguntas: {
                        type: 'PreguntasCuest'
                    },
                    //#endregion
                    //#region Preguntas
                    preguntas: {
                        type: 'PreguntasView',
                        preserve: false
                    },
                    editarPregunta: {
                        type: 'EditarPregunta'
                    },
                    //#endregion
                    //#region Recursos
                    recursos: {
                        type: 'RecursosView',
                        preserve: false
                    },
                    seleccionarrecursos: {
                        type: 'SeleccionarRecursosView',
                        preserve: false
                    },
                    editarrecurso: {
                        type: 'EditarRecurso',
                        preserve: false
                    },
                    //#endregion
                    //#region Cuestionarios
                    cuestionarios: {
                        type: 'CuestionariosView',
                        preserve: false
                    },
                    editarCuestionario: {
                        type: 'EditarCuestionario',
                        preserve: false
                    },
                    //#endregion
                    //#region Examenes
                    examenes: {
                        type: 'ExamenesView',
                        preserve: false
                    },
                    editarExamen: {
                        type: 'EditarExamen'
                    },
                    nuevoexamen: {
                        type: 'NuevoExamen'
                    },
                    micalendario: {
                        type: 'MiCalendarioView'
                    },
                    examenesrendidos: {
                        type: 'ExamenesRendidosView'
                    },
                    //#endregion
                    evaluacion: {
                        type: 'Evaluacion'
                    },
                    prevaluacion: {
                        type: 'Prevaluacion'
                    },
                    resultadoEvaluacion: {
                        type: 'ResultadoEvaluacion'
                    },
                    reportes: {
                        type: 'ReportesView'
                    },
                    scheduler: {
                        type: 'SchedulerExamenes',
                        preserve: false
                    },
                    cuestionariosexa: {
                        type: 'CuestionariosExaView',
                        preserve: false
                    },
                    editarCalendarizacion: {
                        type: 'EditarCalendarizacion',
                        preserve: false
                    }

                },
                routes: [
                    //#region Home
                    {
                        path: '/',
                        callback: function () {
                            debugger
                            var accessHeader = {};
                            try {
                                var token = amplify.store('userData');
                                accessHeader = { 'Authorization': 'Bearer ' + token.access_token }
                            } catch (e) {
                                console.log(e)
                            }
                            amplify.store('authorization', accessHeader);

                            //carga de catalogos
                            var catalogos = new Y.Catalogos();
                            var that = this, a = catalogos.load({ headers: amplify.store('authorization') }, function () {
                                amplify.store('catalogos', catalogos)
                                that.showView('home');
                            });
                        }
                    },
                    //#endregion
                    //#region Subida de archivos
                    {
                        path: '/subidadearchivos',
                        callback: function () {
                            //unload recursos
                            var subirarchivos = new Y.SubirRecursoView();
                            this.showView('subirarchivos');
                        }
                    },
                    //#endregion
                    //#region Catalogos
                    {
                        path: '/catalogos',
                        callback: function () {
                            //carga de la lista de catalogos
                            var catalogos = new Y.Catalogos();
                            var that = this, a = catalogos.load({ urlName: 'listPaging', headers: amplify.store('authorization') }, function () {
                                that.showView('catalogos', { modelList: catalogos });
                            });
                        }
                    },
                    {
                        path: '/catalogos/:id',
                        callback: function (request) {

                            var catalogoId = request.params.id;
                            if (!Y.Lang.isUndefined(catalogoId)) {
                                var catalogo = null;
                                if (catalogoId == 0) {
                                    catalogo = new Y.Catalogo();
                                    this.showView('editarCatalogo', {
                                        model: catalogo
                                    });
                                }
                                else {
                                    catalogo = new Y.Catalogo({ idCat: catalogoId });
                                    var that = this, a = catalogo.load({ headers: amplify.store('authorization') }, function () {
                                        that.showView('editarCatalogo', {
                                            model: catalogo
                                        });
                                    });
                                }
                            } else
                                bootbox.alert("No se ha seleccionado el catálogo para editar");
                        }
                    },
                    {
                        path: '/catalogos/eliminar/:id',
                        callback: function (request) {
                            var catalogoId = request.params.id;
                            if (!Y.Lang.isUndefined(catalogoId)) {
                                var catalogo = new Y.Catalogo({ idCat: catalogoId });
                                var that = this, a = catalogo.load({ headers: amplify.store('authorization') }, function () {
                                    if (catalogo != null) {
                                        bootbox.confirm("¿Realmente desea eliminar el catalogo seleccionado ?", function (result) {
                                            if (result == true) {
                                                var those = that, c = catalogo.destroy({ urlName: 'deleteOption', remove: true }, function (err, d) {
                                                    if (err != null) {
                                                        bootbox.alert("Problemas al eliminar el catalogo seleccionado");
                                                    }
                                                    those.navigate('/catalogos')
                                                });
                                            }

                                        });
                                    } else
                                        bootbox.alert("El catalogo seleccionado no existe para ser eliminado");
                                });
                            }
                        }
                    },
                    //#endregion
                    //#region Periodos
                    {
                        path: '/periodos',
                        callback: function () {
                            //carga de la lista de periodos

                            var periodos = new Y.Periodos();
                            var that = this, a = periodos.load({ urlName: 'listPaging' }, function () {
                                that.showView('periodos', { modelList: periodos });
                            });
                        }
                    },
                    {
                        path: '/periodos/:id',
                        callback: function (request) {
                            var periodoId = request.params.id;
                            if (!Y.Lang.isUndefined(periodoId)) {
                                var periodo = null;
                                if (periodoId == 0) {
                                    periodo = new Y.Periodo();
                                    this.showView('editarPeriodo', {
                                        model: periodo
                                    });
                                }
                                else {
                                    periodo = new Y.Periodo({ idPer: periodoId });
                                    var that = this, a = periodo.load(function () {
                                        that.showView('editarPeriodo', {
                                            model: periodo
                                        });
                                    });
                                }
                            } else
                                bootbox.alert('No se ha seleccionado ningún período para editar');
                        }
                    },
                    {
                        path: '/periodos/eliminar/:id',
                        callback: function (request) {
                            var periodoId = request.params.id;
                            if (!Y.Lang.isUndefined(periodoId)) {
                                var periodo = new Y.Periodo({ idPer: periodoId });
                                var that = this, a = periodo.load(function () {
                                    if (periodo != null) {

                                        bootbox.confirm("¿Realmente desea eliminar el período seleccionado ?", function (result) {
                                            if (result == true) {
                                                var those = that, c = periodo.destroy({ remove: true }, function (err, d) {
                                                    if (err != null) {
                                                        bootbox.alert('Problemas al eliminar el período seleccionado');
                                                    }
                                                    those.navigate('/periodos')
                                                });
                                            }

                                        });
                                    } else
                                        bootbox.alert('El período seleccionado no existe para ser eliminado');
                                });
                            }

                        }
                    },
                    //#endregion
                    //#region Parciales
                    {
                        path: '/parciales/:idPeriodo',
                        callback: function (request) {
                            var parciales = new Y.Parciales();

                            var that = this, a = parciales.load({ urlName: 'parcialPorIdPeriodo', idPeriodo: request.params.idPeriodo }, function () {
                                that.showView('parciales', { modelList: parciales, idPeriodo: request.params.idPeriodo });
                            });
                        }
                    },
                    {
                        path: '/parciales/:idPeriodo/:id',
                        callback: function (request) {
                            var parcialId = request.params.id;
                            var idPeriodo = request.params.idPeriodo;

                            if (!Y.Lang.isUndefined(parcialId)) {
                                var parcial = null;
                                if (parcialId == 0) {
                                    parcial = new Y.Parcial();
                                    this.showView('editarParcial', {
                                        model: parcial,
                                        periodo: idPeriodo
                                    });
                                }
                                else {
                                    parcial = new Y.Parcial({ idP: parcialId });
                                    var that = this, a = parcial.load(function () {
                                        that.showView('editarParcial', {
                                            model: parcial,
                                            periodo: idPeriodo
                                        });
                                    });
                                }
                            } else
                                bootbox.alert('No se ha seleccionado ningún parcial para editar');
                        }
                    },
                    {
                        path: '/parciales/eliminar/:idPeriodo/:id',
                        callback: function (request) {
                            var parcialId = request.params.id;
                            var idPeriodo = request.params.idPeriodo;
                            if (!Y.Lang.isUndefined(parcialId)) {
                                var parcial = new Y.Parcial({ IdParcial: parcialId });
                                var that = this, periodo = idPeriodo, a = parcial.load(function () {
                                    if (parcial != null) {
                                        bootbox.confirm('¿Realmente desea eliminar el parcial seleccionado ?', function (result) {
                                            if (result == true) {
                                                var those = that, periodoSeleccionado = periodo, c = parcial.destroy({ urlName: 'deleteOption', remove: true }, function (err, d) {
                                                    if (err != null) {
                                                        bootbox.alert('Problemas al eliminar el parcial seleccionado');
                                                    }
                                                    those.navigate('/periodos/' + periodo)
                                                });
                                            }
                                        });
                                    } else
                                        bootbox.alert('El parcial seleccionado no existe para ser eliminado');
                                });
                            }

                        }
                    },
                    //#endregion
                    //#region Cursos
                    {
                        path: '/cursos',
                        callback: function (request) {
                            var cursos = new Y.ConsultaCursos();
                            var that = this, a = cursos.load(function () {
                                debugger
                                that.showView('cursos', { modelList: cursos });
                            });
                        }
                    },
                    {
                        path: '/cursos/eliminar/:id',
                        callback: function (request) {
                            debugger
                            var cursoId = request.params.id;
                            if (!Y.Lang.isUndefined(cursoId)) {
                                var curso = new Y.Curso({ idCurso: cursoId });
                                var that = this, a = curso.load(function () {
                                    if (curso != null) {
                                        bootbox.confirm("¿Realmente desea eliminar el curso seleccionado ?", function (result) {
                                            if (result == true) {
                                                var those = that, c = curso.destroy({ remove: true }, function (err, d) {
                                                    if (err != null) {
                                                        bootbox.alert('Problemas al eliminar el curso seleccionado');
                                                    }
                                                    those.navigate('/cursos')
                                                });
                                            }

                                        });
                                    } else
                                        bootbox.alert('El curso seleccionado no existe para ser eliminado');
                                });
                            }
                        }
                    },
                    {
                        path: '/cursos/:id',
                        callback: function (request) {
                            debugger
                            var cursoId = request.params.id;
                            if (!Y.Lang.isUndefined(cursoId)) {
                                var curso = null;

                                //carga de periodos disponibles
                                var periodosDisponibles = new Y.Periodos();
                                var that = this, a = periodosDisponibles.load({ urlName: 'periodosVigentes' }, function (e, r) {

                                    if (cursoId == 0) {
                                        curso = new Y.Curso();
                                        that.showView('agregarCurso', {
                                            model: curso, periodos: periodosDisponibles
                                        });
                                    }
                                    else {
                                        curso = new Y.Curso({ idCurso: cursoId });
                                        var those = that, a = curso.load(function () {
                                            that.showView('agregarCurso', {
                                                model: curso, periodos: periodosDisponibles
                                            });
                                        });
                                    }

                                });


                            }

                        }
                    },

                    {
                        path: '/curso/docentes',
                        callback: function (request) {
                            var docentes = new Y.Docentes();
                            var that = this, a = docentes.load(function () {
                                that.showView('agregarDocenteCurso', { modelList: docentes });
                            })
                        }
                    },

                    //#endregion

                    //#region Personas Estudiantes Docentes
                    {
                        path: '/personas',
                        callback: function (request) {
                            var personas = new Y.Personas();
                            var that = this, a = personas.load({ urlName: 'listPaging' }, function () {
                                that.showView('personas', { modelList: personas });
                            });
                        }
                    },
                    {
                        path: '/personas/:id',
                        callback: function (request) {
                            var personaId = request.params.id;
                            if (!Y.Lang.isUndefined(personaId)) {
                                var persona = null;
                                if (personaId == 0) {
                                    persona = new Y.Persona();
                                    this.showView('editarPersona', {
                                        model: persona
                                    });
                                }
                                else {
                                    persona = new Y.Persona({ idPers: personaId });
                                    var that = this, a = persona.load(function () {
                                        that.showView('editarPersona', {
                                            model: persona
                                        });
                                    });
                                }
                            }

                        }
                    },
                    {
                        path: '/cambiarContrasenia',
                        callback: function (request) {
                            this.showView('cambiarContrasenia');
                        }
                    },
                    {
                        path: '/docentes',
                        callback: function (request) {
                            //Obtencion de token

                            var accessHeader = {};
                            try {
                                var token = JSON.parse(amplify.store('userData'));
                                accessHeader = { 'Authorization': 'Bearer ' + token.access_token }
                            } catch (e) {
                                console.log(e)
                            }

                            var docentes = new Y.Personas();
                            var that = this, a = docentes.load({ urlName: 'docentes', headers: accessHeader }, function () {
                                that.showView('docentes', { modelList: docentes });
                            });
                        }
                    },
                    {
                        path: '/estudiantes',
                        callback: function (request) {
                            var estudiantes = new Y.ConsultaEstudiantes();

                            var that = this, a = estudiantes.load(function () {
                                that.showView('estudiantes', { modelList: estudiantes });
                            });
                        }
                    },
                    {
                        path: '/estudiante/:id',
                        callback: function (request) {
                            var estudianteId = request.params.id;

                            var studentModel = amplify.store('studentModel');
                            if (studentModel != '' && studentModel != null) {

                                estudiante = new Y.Estudiante(Y.JSON.parse(studentModel));
                                this.showView('editarEstudiante', {
                                    model: estudiante
                                });
                            } else if (!Y.Lang.isUndefined(estudianteId)) {
                                var estudiante = null;
                                if (estudianteId == 0) {
                                    estudiante = new Y.Estudiante();
                                    this.showView('editarEstudiante', {
                                        model: estudiante
                                    });
                                }
                                else {

                                    estudiante = new Y.Estudiante({ Id: estudianteId });
                                    var that = this, a = estudiante.load(function () {
                                        that.showView('editarEstudiante', {
                                            model: estudiante
                                        });
                                    });

                                }
                            }

                        }
                    },
                    {
                        path: '/estudiantes/eliminar/:id',
                        callback: function (request) {
                            var estudianteId = request.params.id;
                            if (!Y.Lang.isUndefined(estudianteId)) {
                                var estudiante = new Y.Estudiante({ idEst: estudianteId });
                                var that = this, a = estudiante.load(function () {
                                    if (estudiante != null) {

                                        bootbox.confirm("¿Realmente desea eliminar los datos del estudiante seleccionado ?", function (result) {
                                            if (result == true) {
                                                var those = that, c = estudiante.destroy({ urlName: 'deleteOption', remove: true }, function (err, d) {
                                                    if (err != null) {
                                                        bootbox.alert('Problemas al eliminar los datos del estudiante seleccionado');
                                                    }
                                                    those.navigate('/estudiantes')
                                                });
                                            }

                                        });
                                    } else
                                        bootbox.alert('El estudiante seleccionado no existe para ser eliminado');
                                });
                            }

                        }
                    },
                    {
                        path: '/estudiantes/representante/:id',
                        callback: function (request) {

                            var estudianteId = request.params.id;
                            if (!Y.Lang.isUndefined(estudianteId)) {
                                var representante = null;
                                if (estudianteId == 0) {
                                    representante = new Y.Persona();
                                    this.showView('editarRepresentanteEstudiante', {
                                        model: representante
                                    });
                                }
                                else {

                                    //TODO carga de representante del estudiante por llamada rest
                                }
                            }

                        }
                    },
                    {
                        path: '/estudiantes/matriculacion/:id',
                        callback: function (request) {
                            var estudianteId = request.params.id;

                            if (!Y.Lang.isUndefined(estudianteId)) {

                                if (estudianteId != 0) {
                                    var cursosDisponibles = new Y.Cursos();
                                    this.showView('matricularEstudiante', {
                                        idEstudiante: estudianteId
                                    });
                                }
                            }
                        }
                    },
                    //#endregion
                    //#region Preguntas
                    {
                        path: '/preguntas',
                        callback: function (request) {
                            var preguntas = new Y.Preguntas();

                            var that = this, a = preguntas.load({ urlName: 'preguntaDetalle' }, function () {
                                that.showView('preguntas', { modelList: preguntas });
                            });
                        }
                    },
                    {
                        path: '/preguntas/:id',
                        callback: function (request) {
                            debugger
                            var preguntaId = request.params.id;
                            if (!Y.Lang.isUndefined(preguntaId)) {
                                var pregunta = null;
                                if (preguntaId == 0) {
                                    pregunta = new Y.Pregunta();
                                    this.showView('editarPregunta', {
                                        model: pregunta
                                    });
                                }
                                else {
                                    pregunta = new Y.Pregunta({ IdPregunta: preguntaId });
                                    debugger
                                    var that = this, a = pregunta.load({ urlName: 'getFullQuestion' }, function () {
                                        that.showView('editarPregunta', {
                                            model: pregunta
                                        });
                                    });
                                }
                            } else
                                bootbox.alert('No se ha seleccionado ningúna pregunta para editar');

                        }
                    },
                    {
                        path: '/preguntas/eliminar/:id',
                        callback: function (request) {
                            debugger
                            var preguntaId = request.params.id;
                            if (!Y.Lang.isUndefined(preguntaId)) {
                                var pregunta = new Y.Pregunta({ idPreg: preguntaId });
                                var that = this, a = pregunta.load(function () {
                                    if (pregunta != null) {
                                        bootbox.confirm("¿Realmente desea eliminar la pregunta seleccionada ?", function (result) {
                                            if (result == true) {
                                                var those = that, p = pregunta.destroy({ urlName: 'deleteOption', remove: true }, function (err, d) {
                                                    if (err != null) {
                                                        bootbox.alert('Problemas al eliminar la pregunta');
                                                    }
                                                    those.navigate('/preguntas')
                                                });
                                            }
                                        });

                                    } else
                                        bootbox.alert('La pregunta no existe para eliminar');
                                });
                            }
                        }
                    },
                    {
                        path: '/preguntascuestionario/:idCuestionario',
                        callback: function (request) {
                            var preguntas = new Y.Preguntas();

                            var that = this, a = preguntas.load({ urlName: 'preguntaPorIdCuestionario', idCuestionario: request.params.idCuestionario }, function () {
                                that.showView('preguntas', { modelList: preguntas, idCuestionario: request.params.idCuestionario });
                            });
                        }
                    },
                    {
                        path: '/cuestionarioscalendarizacion/:id',
                        callback: function (request) {
                            var idCuestionario = request.params.id;
                            if (!Y.Lang.isUndefined(idCuestionario)) {
                                var cuestionario = new Y.Cuestionario({ idCues: idCuestionario });
                                var that = this, a = cuestionario.load(function (e) {
                                    var calendarizacion = new Y.Calendarizacion();
                                    that.showView('editarCalendarizacion', {
                                        model: calendarizacion,
                                        presentationModel: cuestionario
                                    });
                                })
                            }
                            else {
                                bootbox.alert('No se ha seleccionado la calendarizacion para editar');
                            }
                        }
                    },
                    //#endregion
                    //#region Cuestionarios
                     {
                         path: '/seleccionarcuestionariopreguntas/:idCuestionario',
                         //carga de la lista de periodos
                         callback: function (request) {
                             var preguntas = new Y.ConsultaPreguntas();
                             var idCuestionario = request.params.idCuestionario;
                             var that = this, a = preguntas.load({ urlName: 'listPaging' }, function () {
                                 that.showView('cuestpreguntas', { modelList: preguntas, cuestionario: idCuestionario });
                             });
                         }
                     },
                    {
                        path: '/cuestionariopreguntas/:id',
                        callback: function (request) {
                            var preguntaId = request.params.id;
                            if (!Y.Lang.isUndefined(preguntaId)) {
                                var pregunta = null;
                                if (preguntaId == 0) {
                                    pregunta = new Y.PreguntaConsulta();
                                    this.showView('editarPreguntaCuest', {
                                        model: pregunta,
                                    });
                                }
                                else {
                                    pregunta = new Y.PreguntaConsulta({ idPregunta: preguntaId });
                                    var that = this, a = pregunta.load(function () {
                                        that.showView('editarPreguntaCuest', {
                                            model: pregunta
                                        });
                                    });
                                }
                            } else
                                bootbox.alert('No se ha seleccionado ningúna pregunta para editar');

                        }
                    },
                    {
                        path: '/cuestionariopreguntas/eliminar/:id/:idCuestionario',
                        callback: function (request) {
                            var preguntaId = request.params.id;
                            var idCuestionario = request.params.idCuestionario;
                            if (!Y.Lang.isUndefined(preguntaId)) {
                                var pregunta = new Y.PreguntaConsulta({ idPregunta: preguntaId });
                                var that = this, a = pregunta.load(function () {
                                    if (pregunta != null) {

                                        bootbox.confirm("¿Realmente desea eliminar la pregunta seleccionada ?", function (result) {
                                            if (result == true) {
                                                var those = that, p = pregunta.destroy({ urlName: 'deleteOption', remove: true, IdCuestionario: idCuestionario }, function (err, d) {
                                                    if (err != null) {
                                                        bootbox.alert("Problemas al eliminar la pregunta seleccionada");
                                                    }
                                                    those.navigate('/cuestionarios/'+idCuestionario)
                                                });
                                            }

                                        });
                                    } else
                                        bootbox.alert("La pregunta seleccionada no existe para ser eliminado");
                                });
                            }

                        }
                    },
                    {
                        path: '/cuestionarioscalendarizacion',
                        callback: function () {
                            //carga de la lista de preguntas
                            var cuestionarios = new Y.Cuestionarios();
                            var that = this, a = cuestionarios.load({ urlName: 'listPaging' }, function () {
                                that.showView('cuestionarios', { modelList: cuestionarios });
                            });

                        }
                    },
                    {
                        path: '/previsualizarcuestionarios/:idCuestionario',
                        callback: function (request) {
                            //carga de la lista de periodos
                            var cuestionario = new Y.Cuestionario();
                            var that = this, a = cuestionario.load({ urlName: 'evaluacion', idCuestionario: request.params.idCuestionario }, function () {
                                that.showView('prevaluacion', { model: cuestionario.toJSON() })
                            });
                        }
                    }
                    ,
                    {
                        path: '/cuestionarios',
                        callback: function () {
                            //carga de la lista de periodos

                            var cuestionarios = new Y.Cuestionarios();
                            var that = this, a = cuestionarios.load({ urlName: 'listPaging' }, function () {
                                that.showView('cuestionarios', { modelList: cuestionarios });
                            });
                        }
                    },
                    {
                        path: '/cuestionarios/:id',
                        callback: function (request) {
                            var cuestionarioId = request.params.id;
                            if (!Y.Lang.isUndefined(cuestionarioId)) {
                                var cuestionario = null;
                                if (cuestionarioId == 0) {
                                    cuestionario = new Y.Cuestionario();
                                    this.showView('editarCuestionario', {
                                        model: cuestionario,
                                    });
                                }
                                else {
                                    cuestionario = new Y.Cuestionario({ idCues: cuestionarioId });
                                    var that = this, a = cuestionario.load(function () {
                                        that.showView('editarCuestionario', {
                                            model: cuestionario
                                        });
                                    });
                                }
                            } else
                                bootbox.alert('No se ha seleccionado ningún cuestionario para editar');
                        }
                    },
                    {
                        path: '/cuestionarios/eliminar/:id',
                        callback: function (request) {
                            var cuestionarioId = request.params.id;
                            if (!Y.Lang.isUndefined(cuestionarioId)) {
                                var cuestionario = new Y.Cuestionario({ idCues: cuestionarioId });
                                var that = this, a = cuestionario.load(function () {
                                    if (cuestionario != null) {
                                        bootbox.confirm("¿Realmente desea eliminar el cuestionario seleccionado ?", function (result) {
                                            if (result == true) {
                                                var those = that, c = cuestionario.destroy({ urlName: 'deleteOption', remove: true }, function (err, d) {
                                                    if (err != null) {
                                                        bootbox.alert("Problemas al eliminar el cuestionario seleccionado");
                                                    }
                                                    those.navigate('/cuestionarios')
                                                });
                                            }

                                        });
                                    } else
                                        bootbox.alert("El cuestionario seleccionado no existe para ser eliminado");
                                });
                            }

                        }
                    },
                    {
                        path: '/cuestionariosexamenes',
                        callback: function () {
                            //carga de la lista de cuestionarios
                            var cuestionariosexa = new Y.Cuestionarios();
                            var that = this, a = cuestionariosexa.load({ urlName: 'listPaging' }, function () {
                                that.showView('cuestionariosexa', { modelList: cuestionariosexa });
                            });
                        }
                    },
                    {
                        path: '/cuestionarioscalendarizacion/:id',
                        callback: function (request) {
                            var idCuestionario = request.params.id;
                            if (!Y.Lang.isUndefined(idCuestionario)) {
                                var cuestionario = new Y.Cuestionario({ idCues: idCuestionario });
                                var that = this, a = cuestionario.load(function (e) {
                                    var calendarizacion = new Y.Calendarizacion();
                                    that.showView('editarCalendarizacion', {
                                        model: calendarizacion,
                                        presentationModel: cuestionario
                                    });
                                })
                            }
                        }
                    },
                    //#endregion
                    //#region Recursos
                    {
                        path: '/recursos',
                        callback: function () {
                            //carga de la lista de recursos
                            var recursos = new Y.Recursos();
                            var that = this, a = recursos.load({ urlName: 'listPaging' }, function () {
                                that.showView('recursos', { modelList: recursos });
                            });
                        }
                    },
                    {
                        path: '/recursos/seleccionar',
                        callback: function () {
                            //carga de la lista de recursos
                            var recursos = new Y.Recursos();
                            var that = this, a = recursos.load({ urlName: 'listPaging' }, function () {

                                that.showView('seleccionarrecursos', { modelList: recursos });
                            });
                        }
                    },
                    {
                        path: '/recursos/elegir/:id',
                        callback: function (request) {
                            debugger
                            //carga de la lista de recursos
                            var recurso = new Y.Recurso();
                            var that = this, a = recurso.load({ idRec: request.params.id }, function () {
                                debugger
                                that.showView('editarPregunta', {
                                    model: new Y.Pregunta().setAttrs(amplify.store('formularioPreguntas')),
                                    recurso: recurso
                                });

                            });
                        }
                    },
                    {
                        path: '/recursos/:id',
                        callback: function (request) {
                            var recursoId = request.params.id;
                            if (!Y.Lang.isUndefined(recursoId)) {
                                var recurso = null;
                                if (recursoId == 0) {
                                    recurso = new Y.Recurso();
                                    this.showView('editarrecurso', {
                                        model: recurso
                                    });
                                }
                                else {
                                    recurso = new Y.Recurso({ idRec: recursoId });
                                    var that = this, a = recurso.load(function () {
                                        that.showView('editarrecurso', {
                                            model: recurso
                                        });
                                    });
                                }
                            } else
                                bootbox.alert('No se ha seleccionado ningún recurso para editar');
                        }
                    },
                    {
                        path: '/recursos/eliminar/:id',
                        callback: function (request) {
                            debugger
                            var recursoId = request.params.id;
                            if (!Y.Lang.isUndefined(recursoId)) {
                                var recurso = new Y.Recurso({ idRec: recursoId });
                                var that = this, a = recurso.load(function () {
                                    if (recurso != null) {
                                        bootbox.confirm("¿Realmente desea eliminar el recurso seleccionado ?", function (result) {
                                            if (result == true) {
                                                var those = that, c = recurso.destroy({ remove: true }, function (err, d) {
                                                    if (err != null) {
                                                        bootbox.alert('Problemas al eliminar el recurso seleccionado');
                                                    }
                                                    those.navigate('/recursos')
                                                });
                                            }

                                        });
                                    } else
                                        bootbox.alert('El recurso seleccionado no existe para ser eliminado');
                                });
                            }
                        }
                    },
                    //#endregion
                    //#region Mis Examenes
                    {
                        path: '/misexamenes/:id',
                        callback: function (request) {
                            debugger
                            var examenId = request.params.id;
                            if (!Y.Lang.isUndefined(examenId)) {
                                var examen = null;
                                if (examenId == 0) {
                                    examen = new Y.ConsultaExamen();
                                    this.showView('editarExamen', {
                                        model: examen,
                                    });
                                }
                                else {
                                    var cuestionarios = new Y.Cuestionarios();
                                    var cursosDocente = new Y.Cursos();
                                    examen = new Y.ConsultaExamen({ idCalenExa: examenId });
                                    var that = this, a = examen.load(function () {
                                        var these = that, b = cuestionarios.load(function () {
                                            var those = these, c = cursosDocente.load({ urlName: 'cursosDocente', idDocente: amplify.store('datosDocente').Id }, function (err, response) {
                                                those.showView('editarExamen', {
                                                    model: examen, cuestionarios: cuestionarios, cursos: cursosDocente
                                                });
                                            });
                                        });
                                    });
                                }
                            } else
                                bootbox.alert('No se ha seleccionado ningún cuestionario para editar');
                        }
                    },
                    {
                        path: '/examenes',
                        callback: function () {
                            //carga de la lista de examenes
                            var examenes = new Y.Examenes();
                            var that = this, a = examenes.load({ urlName: 'listPaging' }, function () {
                                that.showView('examenes', { modelList: examenes });
                            });
                        }
                    },

                    {
                        path: '/misexamenes',
                        callback: function () {
                            debugger
                            //carga de la lista de examenes
                            var examenesActivos = new Y.ConsultaExamenes();
                            var examenesInactivos = new Y.ConsultaExamenes();
                            var examenesCaducados = new Y.ConsultaExamenes();
                            var that = this, a = examenesActivos.load({ urlName: 'Activos' }, function () {
                                var these = that, b = examenesInactivos.load({ urlName: 'Inactivos' }, function () {
                                    var those = that, c = examenesCaducados.load({ urlName: 'Caducados' }, function () {
                                        that.showView('examenes', {
                                            modelList: examenesActivos,
                                            listaInactivos: examenesInactivos,
                                            listaCaducados: examenesCaducados
                                        });

                                    });

                                });
                            });
                        }
                    },
                    //mis examenes por docente
                    {
                        path: '/misexamenespordocente/:iddocente',
                        callback: function () {
                            //carga de la lista de examenes
                            var examenesActivos = new Y.ConsultaExamenes();
                            var examenesInactivos = new Y.ConsultaExamenes();
                            var examenesCaducados = new Y.ConsultaExamenes();
                            var that = this, a = examenesActivos.load({ urlName: 'Activos' }, function () {
                                var these = that, b = examenesInactivos.load({ urlName: 'Inactivos' }, function () {
                                    var those = that, c = examenesCaducados.load({ urlName: 'Caducados' }, function () {
                                        that.showView('examenes', {
                                            modelList: examenesActivos,
                                            listaInactivos: examenesInactivos,
                                            listaCaducados: examenesCaducados
                                        });

                                    });

                                });
                            });
                        }
                    },


                    {
                        path: '/nuevoexamen',
                        callback: function (request) {
                            //carga de la lista de cuestionarios
                            var cuestionarios = new Y.Cuestionarios();
                            var that = this, a = cuestionarios.load(function () {
                                var cursosDocente = new Y.Cursos();
                                debugger
                                var these = that, b = cursosDocente.load({ urlName: 'cursosDocente', idDocente: amplify.store('datosDocente').Id }, function (err, response) {
                                    var calendarizacion = new Y.Calendarizacion();
                                    these.showView('nuevoexamen', { model: calendarizacion, cuestionarios: cuestionarios, cursos: cursosDocente });
                                })
                            });
                        }
                    },
                    {
                        path: '/examenes/:id',
                        callback: function (request) {
                            var examenId = request.params.id;
                            if (!Y.Lang.isUndefined(examenId)) {
                                var examen = null;
                                if (examenId == 0) {
                                    examen = new Y.Examen();
                                    this.showView('editarExamen', {
                                        model: examen
                                    });
                                }
                                else {
                                    bootbox.alert('No se ha seleccionado el examen para editar');
                                }
                            }
                        }
                    },
                    {
                        path: '/misexamenes/eliminar/:id',
                        callback: function (request) {
                            var examenId = request.params.id;
                            if (!Y.Lang.isUndefined(examenId)) {
                                var examen = new Y.Calendarizacion({ idCalen: examenId });
                                var that = this, a = examen.load(function () {
                                    if (examen != null) {
                                        bootbox.confirm("¿Realmente desea eliminar el examen seleccionado ?", function (result) {
                                            if (result == true) {
                                                var those = that, c = examen.destroy({ remove: true }, function (err, d) {
                                                    if (err != null) {
                                                        bootbox.alert('Problemas al eliminar el examen seleccionado');
                                                    }
                                                    those.navigate('/misexamenes')
                                                });
                                            }

                                        });
                                    } else
                                        bootbox.alert('El examen seleccionado no existe para ser eliminado');
                                });
                            }
                        }
                    },
                    {
                        path: '/nuevoexamen/scheduler/:idCalendarizacion/:idCuestionario',
                        callback: function (request) {
                            var idCalendarizacion = request.params.idCalendarizacion;
                            var calendarizacion = new Y.Calendarizacion({ IdCalendarizacion: idCalendarizacion, IdCuestionario: idCuestionario });
                            var that = this, a = calendarizacion.load({ idCalen: idCalendarizacion }, function () {
                                that.showView('scheduler', { model: calendarizacion });
                            });

                        }
                    },
                    {
                        path: '/examenes/eliminar/:id',
                        callback: function (request) {
                            var examenId = request.params.id;
                            if (!Y.Lang.isUndefined(examenId)) {
                                var examen = new Y.Examen({ idExa: examenId });
                                var that = this, a = examen.load(function () {
                                    if (examen != null) {
                                        if (bootbox.confirm('¿Realmente desea eliminar el examen ?')) {
                                            var those = that, p = examen.destroy({ urlName: 'deleteOption', remove: true }, function (err, d) {
                                                if (err != null) {
                                                    bootbox.alert('Problemas al eliminar el examen');
                                                }
                                                those.navigate('/examenes')
                                            });
                                        }
                                    } else
                                        bootbox.alert('El examen no existe para eliminar');
                                });
                            }

                        }
                    },
                     {
                         path: '/examenesrendidos',
                         callback: function () {
                             //carga de la lista de periodos

                             var examenesrendidos = new Y.Examenes();
                             var url = 'examenesRendidosEstudiante'
                             var nombreSesion = 'datosEstudiante'
                             var that = this, a = examenesrendidos.load({ urlName: url, idPersona: amplify.store(nombreSesion).Id }, function () {
                                 that.showView('examenesrendidos', { modelList: examenesrendidos });
                             });
                         }
                     },
                //#endregion
                    //#region Mi Calendario
                    //{
                    //    path: '/micalendario',
                    //    callback: function (request) {
                    //        var calendarizacion = new Y.Calendarizacion();
                    //        var that = this, a = calendarizacion.load(function () {
                    //            that.showView('micalendario', { model: calendarizacion });
                    //        });
                    //    }
                    //},
                    {
                        path: '/micalendario',
                        callback: function (request) {
                            debugger
                            var calendarizaciones = new Y.Calendarizaciones();
                            var url = 'examenesPendientes'
                            var nombreSesion = 'datosEstudiante'
                            if (amplify.store('perfilUsuario') == 'Docente') {
                                url = 'examenesPendientesDocente';
                                nombreSesion = 'datosDocente';
                            }
                            var that = this, a = calendarizaciones.load({ urlName: url, idPersona: amplify.store(nombreSesion).Id }, function () {
                                that.showView('scheduler', { modelList: calendarizaciones });
                            });
                        }
                    },
                 //#endregion
                    //#region Catalogos
                    {
                        path: '/calendarizacionescuestionario/scheduler/:idCalendarizacion/:idCuestionario',
                        callback: function (request) {
                            var idCalenadrizacion = request.params.idCalendarizacion;
                            var calendarizacion = new Y.Calendarizacion({ IdCalendarizacion: idCalenadrizacion, IdCuestionario: idCuestionario });
                            var that = this, a = calendarizacion.load({ idCalen: idCalenadrizacion }, function () {
                                that.showView('scheduler', { model: calendarizacion });
                            });

                        }
                    },
                //#endregion
                //#region Toma de examenes
                {
                    path: '/evaluacion/:idCuestionario/:idCalendarizacion',
                    callback: function (request) {
                        var id = request.params.idCuestionario;
                        var cuestionario = new Y.Cuestionario();
                        var that = this, a = cuestionario.load({ urlName: 'evaluacion', idCuestionario: id }, function () {
                            var calendarizacion = new Y.Calendarizacion();
                            var these = that, b = calendarizacion.load({ idCalen: request.params.idCalendarizacion }, function () {
                                var examen = new Y.Examen({
                                    IdCalendarizacion: calendarizacion.get('IdCalendarizacion'),
                                    IdCuestionario: calendarizacion.get('IdCuestionario'),
                                    IdEstudiante: amplify.store('datosEstudiante').Id,
                                    Fecha: new Date(),
                                    Tiempo: calendarizacion.get('TiempoExamen'),
                                    TiempoTranscurrido: 0,
                                    Nota: 0,
                                    NumeroIntentos: 1,
                                    Estado: 'ENEVALUACION'
                                });

                                var those = these, c = examen.save({ urlName: 'saveOption' }, function (err, response) {
                                    if (err != null)
                                        bootbox.alert('Ocurrieron problemas al actualizar la pregunta seleccionada')
                                    else {
                                        var idExamen = Y.JSON.parse(response.responseText).IdExamen;

                                        those.showView('evaluacion', { model: cuestionario.toJSON(), calendarizacion: calendarizacion.toJSON(), idExamen: idExamen })
                                    }
                                });

                            });

                        })

                    }
                },
                //#endregion
                //#region Reportes
                {
                    path: '/reportes',
                    callback: function (request) {
                        var accessHeader = {};
                        try {
                            var token = amplify.store('userData');
                            accessHeader = { 'Authorization': 'Bearer ' + token.access_token }
                        } catch (e) {
                            console.log(e)
                        }
                        amplify.store('authorization', accessHeader);

                        //carga de reportes
                        var reportes = new Y.ReportesView();
                        this.showView('reportes');

                    }
                },
                //#endregion
                //#region Resultadoexamenes
                {
                    path: '/mostrarresultadoevaluacion/:valorexamen',
                    callback: function (request) {
                        debugger
                        this.showView('resultadoEvaluacion', { calificacion: request.params.valorexamen });
                    }
                },
                //#endregion
                ]
            })
            app.navigate('/');
        });
